// import gsap from 'gsap';
import * as THREE from "three";
import { OrbitControls } from 'jsm/controls/OrbitControls.js';

// 获取浏览器窗口的宽高
const w = window.innerWidth;
const h = window.innerHeight;

// 创建场景
const scene = new THREE.Scene();

// 配置相机参数
// fov 摄影机拍摄角度
// aspect 宽高比
// near 相机近截面
// far 相机远截面
const fov = 75;
const aspect = w / h;
const near = 1;
const far = 100;

// 创建相机
const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);

// 设置相机位置
camera.position.set(0,0,10);

// 添加物体
// 创建几何体
const cubeGeometry = new THREE.BoxGeometry(1,1,1);
const cubeMaterial = new THREE.MeshBasicMaterial({
  color: 0xD9D919
})
// 根据几何体和材质创建物体
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
// 将几何体添加到场景中
scene.add(cube);

// 初始化渲染器
const renderer = new THREE.WebGLRenderer();
// 设置渲染的尺寸
renderer.setSize(w, h);
// 将webgl渲染的canvas内容添加到body
document.body.appendChild(renderer.domElement);
// // 使用渲染器，通过相机将场景渲染进来
// renderer.render(scene, camera);

// // 创建轨道控制器
const controls = new OrbitControls(camera, renderer.domElement);
const axesHelper = new THREE.AxesHelper(5);
scene.add(axesHelper);

// console.log('gsap', gsap)

// // 设置动画
// var animate1 = gsap.to(cube.position, {
//   x: 5,
//   duration: 5,
//   ease: "power1.inOut",
//   //   设置重复的次数，无限次循环-1
//   repeat: -1,
//   //   往返运动
//   yoyo: true,
//   //   delay，延迟2秒运动
//   delay: 2,
//   onComplete: () => {
//     console.log("动画完成");
//   },
//   onStart: () => {
//     console.log("动画开始");
//   },
// });

// gsap.to(cube.rotation, { x: 2 * Math.PI, duration: 5, ease: "power1.inOut" });

// window.addEventListener("dblclick", () => {
//   //   console.log(animate1);
//   if (animate1.isActive()) {
//     //   暂停
//     animate1.pause();
//   } else {
//     //   恢复
//     animate1.resume();
//   }
// });

// ArrowHelper箭头辅助器
// const dir = new THREE.Vector3(1,2,0);
// dir.normalize();

// const origin = new THREE.Vector3(0,0,0);
// const length = 1;
// const hex = 0xffff00;
// // 添加坐标轴辅助器
// const axesHelper = new THREE.ArrowHelper(dir, origin, length, hex);
// scene.add(axesHelper);

function render() {
  // cube.position.x += 0.01;
  // if(cube.position.x > 5) {
  //   cube.position.x = 0
  // }
  // cube.scale.x += 0.02
  // if(cube.scale.x > 5) {
  //   cube.scale.x -= 0.01
  // }
  cube.rotation.x = -30
  cube.rotation.y = 30;
  cube.rotation.z += 0.01;
  renderer.render(scene,camera);
  // 渲染下一帧的时候就会调用render函数
  requestAnimationFrame(render);
}

render()

